package Control;

import Daos.*;
import Daos.exceptions.PreexistingEntityException;
import Clases.Rol;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import java.util.ArrayList;
import java.util.List;

public class RolController {

    RolJpaController daoRol;

    public RolController(EntityManagerFactory factory) {
        daoRol = new RolJpaController(factory);
    }

    public String crear(String id, String descr, String grupo) throws PreexistingEntityException {
        Rol p = new Rol();
        p.setIdRol(id);
        p.setDescripcion(descr);
        p.setGrupo(grupo);
        try {
            daoRol.create(p);
            return "El registro fue creado exitosamente";
        } catch (Exception ex) {
            Logger.getLogger(Rol.class.getName()).log(Level.SEVERE, null, ex);
            return "Error";
        }
    }

    public String editar(String id, String descr, String grupo) throws PreexistingEntityException {
        Rol p = new Rol();
        p=buscar(id);
        p.setIdRol(id);
        p.setDescripcion(descr);
        p.setGrupo(grupo);
        try {
            daoRol.edit(p);
            return "El registro fue modificado exitosamente";
        } catch (Exception ex) {
            Logger.getLogger(Rol.class.getName()).log(Level.SEVERE, null, ex);
            return "Error";
        }
    }

    public String borrar(String id) throws PreexistingEntityException {
        Rol p = new Rol();
        try {
            daoRol.destroy(id);
            return "El registro fue eliminado exitosamente";
        } catch (Exception ex) {
            Logger.getLogger(Rol.class.getName()).log(Level.SEVERE, null, ex);
            return "Error";
        }
    }

    public Rol buscar(String id) {
        return daoRol.findRol(id);
    }
     public List buscar() {
        return daoRol.findRolEntities();
    }
}
